Many applications run on application servers which are coupled to a relational database to store application data. To enhance the performance of the applications, data in the database may be stored in multiple different forms. In addition to a traditional relational table of data, various subsets of the data with aggregations may be stored in various tables and indices to facilitate quick access to the data to run certain analytical reports. Over time, the number of additional tables used to enhance the speed at which reports are run may become quite large. If the application data is frequently modified, there can be significant overhead involved in maintaining and updating all the tables. In addition, more tables may be created by customers to handle newly desired reports that may require complex aggregations of and analytics on the data.